package jus.aor.talk.ui.client;

import jus.util.assertion.Require;


/**
* L'interface _IntervenantComposant définit les primitives d'un intervevant.
* ce type d'objet peut être distribué sur le réseau
* @version 	1.0, 30/11/98
* @author	Philippe Morat
* @email	Philippe.Morat@imag.fr
* @see		Intervenant
* @see		Forum
* @see <a href=_IntervenantComposant.txt>_IntervenantComposant</a>
*/
public interface _IntervenantComposant {
	/**
	* initialisation d'un intervenant avec ses premon et nom
	* @require argumentValide : args!=null
	*/
	public boolean enter(String forum) throws Require;
	/**
	* résiliation du forum de discussion
	*/
	public boolean leave() throws Require;
	/**
	* mise en vacation de l'intervenant auprès du forum
	*/
	public boolean vacation() throws Require;
	/**
	* terminaison d'un intervenant
	*/
	public void quit() throws Require;
	/**
	* envoi d'une participation au forum de discussion
	* @require argumentValide : participation!=null
	*/
	public void say(String participation) throws Require;
	/**
	* demande de la liste des participants au forum de discussion
	*/
	public String who() throws Require;
	/**
	* initialisation d'un intervenant
	* @require argsValide : prenom!=null && nom!=null
	*/
	public void init(String prenom, String nom) throws Require;
	/**
	* indique l'adaptateur pour ce composant
	* @require argumentValide : adaptator!=null
	*/
	public void setAdaptator(_TalkEventIntervenantAdaptator adaptator) throws Require;
}